Analog video communication and storage systems have today been replaced by their digital counterparts to a large extent. To solve the problem of excessive data rate generated by digital systems number of digital video compression techniques such as Moving Picture Image Coding Experts Group (MPEG-1), MPEG-2[1], MPEG-4, H.264[2], VC-1[3] have evolved.
Rate Control is an important technology that is responsible for video quality while working in a framework of constrained bit-rate to achieve compression.
In terms of the transmission style, rate-control schemes may be classified as Constant Bitrate (CBR) control for the constant-channel-bandwidth video transmission, and Variable Bitrate (VBR) control for the variable-channel-bandwidth, and constant quality video transmission. In terms of the granularity of rate-control operation, these rate-control schemes may be classified as:    1. Macroblock Layer rate control    2. Slice Layer rate control    3. Frame Layer rate control
In a constant bit rate control algorithm which works at the macroblock level, i.e it varies the quantization parameter (qp) from one macroblock to another. The decision to increment or decrement the qp for the current macroblock, m1, is taken depending on the state of the encoder buffer fullness at that instant and the number of bits consumed by the encoding of the current macroblock. To determine the state of the buffer fullness, one needs to know the number of bits that have been consumed for encoding all the macroblocks before m1. To determine the number of bits consumed, the current macroblock is Entropy Coded and the entropy coding schemes used inside popular video coding standards include VLC, CAVLC, CABAC etc.
One solution to the above problem is to do the variable length coding (VLC) for each macroblock and calculate the number of bits required to encode each.
Consider another problem wherein the encoder decides the encoding mode for a macroblock. Of the various modes available, it decides the one which would give the best compression i.e. achieving the target bitrate at optimum quality. In this scenario, an encoder may carry out a entropy coding for each mode and determine the number of bits required for each mode. It may then select the mode which meets the target bitrate keeping minimum quality loss. FIG. 1 illustrates a system to calculate the number of bits required to encode a Macroblock.
Entropy coding may be a computationally expensive process, and today's rate control algorithms available for video encoding may require many iterations of an entropy coding process to achieve the best quantization level/mode for the macroblock. The entropy coding process may be avoided by estimating the number of bits required to encode a macroblock rather than computing the exact number of bits.
Methods utilizing rate control for constant-bit-rate finite-buffer-size video encoder may perform bit estimation from the complexity value for the pixel block, where the complexity value is calculated as a sum of absolute differences between pixel value and the average pixel value.
Additional techniques for estimating and controlling the number of bits output from a video coder may use a relationship between the quantization parameter and the coding mode of the blocks, to estimate the number of encoded bits.
In some existing variable bit-rate control methods, video encoding quantization levels depend upon the difference between the coded bits and target bits allocated to each coded MB. Thresholds are defined which estimate the error to determine the change in quantization levels.
Existing technology may also propose a linear relationship between the coding bit rate and the percentage of zeros among the quantized transform coefficients.
For example, the low-complexity macroblock mode selection for H.264/AVC encoders method uses a similar model to estimate the number of bits required for sending quantized transform coefficients.
The total bit count for encoding a frame in the existing method is calculated from the average bit count of the VLC table and the total number of code words (quantized non-zero AC coefficients) in the frame.
In a macroblock data classification and nonlinear bit count estimation for low delay H.263, rate control, the average table bit count is calculated from the probability distribution of each code word and the bits required for encoding each code word. A class for a macroblock is obtained from its coding mode and its scalar quantized data statistic(s). Each unique combination of class and quantization parameter is mapped to a unique nonlinear estimate of the number of coding bits for the macroblock.